let [file, stream] = Gio.File.new_tmp('XXXXXX.shell-extension.zip');
let dir = ExtensionUtils.userExtensionsDir.get_child(uuid);
- Shell.write_soup_message_to_stream(stream.output_stream, message);
+ let contents = message.response_body.flatten().as_bytes();
+ stream.output_stream.write_bytes(contents, null);
stream.close(null);
let [success, pid] = GLib.spawn_async(null,
['unzip', '-uod', dir.get_path(), '--', file.get_path()],
return week_start;
}
-/**
- * shell_write_soup_message_to_stream:
- * @stream: a #GOutputStream
- * @message: a #SoupMessage
- * @error: location to store GError
- *
- * Write a string to a GOutputStream as binary data. This is a
- * workaround for the lack of proper binary strings in GJS.
- */
-void
-shell_write_soup_message_to_stream (GOutputStream *stream,
- SoupMessage *message,
- GError **error)
-{
- SoupMessageBody *body;
-
- body = message->response_body;
-
- g_output_stream_write_all (stream,
- body->data, body->length,
- NULL, NULL, error);
-}
-
/**
* shell_write_string_to_stream:
* @stream: a #GOutputStream
char *shell_util_format_date (const char *format,
gint64 time_ms);
-void shell_write_soup_message_to_stream (GOutputStream *stream,
- SoupMessage *message,
- GError **error);
-
gboolean shell_write_string_to_stream (GOutputStream *stream,
const char *str,
GError **error);